The present invention relates generally to the field of computer resource allocation, and more particularly to thread scheduling in a virtual computing environment.
A thread is a sequence of computer program instructions that can be carried out, or executed, by a computer processor. Threads typically must access various resources, for example data within a portion of memory, in order to execute. In a virtual computer environment, multiple threads may be executed concurrently and typically must share the same resources. Often, where one thread access a shared resource, for example a portion of memory, the thread does so to the exclusion of all other threads. In other words, only one thread may access a particular resource at a time. Additionally, a single computer processor may only execute one thread at a time. To help ensure efficient operation in such a virtual computing environment, an operating system may employ a method of managing the execution of threads.